home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d18
/
vis082s.arc
/
VISNET01.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1991-04-17
|
26KB
|
828 lines
{ Ok Doug, I just throw it all together.. }
boardrec=record (* Bulletin Records.. so you don't get lost
boardname:mstr; in this mess! *)
sponsor:string[34];
echo:Byte;
level,autodel:integer;
shortname:sstr;
conference:byte
end;
Newsrec=Record
Location:Integer;
Level:Integer;
From:mstr;
When:longint;
Title:String[28];
MaxLevel:Integer;
End;
BulRec=record (* Message Header Record *)
leftby,leftto:String[30];
title,status:String[30];
when:longint;
where:lstr;
where2:lstr;
version:byte;
anon,recieved:boolean;
line,plevel:integer;
id:word;
cnet,fidonet,flag3,flag4,flag5,flag6,flag7,flag8:boolean;
realname:String[30];
end;
NodeNetRec=Record (* Node List Record *)
Pass:Mstr;
Name:Mstr;
Phone:string[12];
Baud:Word;
LastDate:Longint;
Celerity,Fido,Cnet,Flag4,Flag5,Flag6:Boolean;
Node:string[10];
BaseSelection:Array[1..255] of boolean;
end;
(* This is from the WFC side when Net-Mail is forced *)
Procedure Do_Net_Mail; (* ViSiON NetMail Version 1.01 *)
Var NodeRec:NodeNetRec;
CurrentNodeNumber,NumMsgs:Integer;
Fnode:File of NodeNetRec;
chrr:Char;
simplex:boolean;
jo:integer;
finished:boolean;
oktosend:BooLean;
Function FindBaseName(BaseId:Byte):SStr;
Var Board:BoardRec;
Fbd:File of BoardRec;
Sek:Integer;
Begin (* Echo should equal baseId *)
Assign(Fbd,ConfigSet.BoardDi+'BoardDir');
Reset(Fbd);
Sek:=0;
FindBaseName:='';
Repeat
Seek(Fbd,Sek);
Read(Fbd,Board);
Inc(Sek);
If Board.Echo=BaseId then FindBaseName:=Board.ShortName;
Until (Board.Echo=BaseId) or Eof(Fbd);
Close(Fbd);
End; (* End FindBaseName *)
Procedure SendString(S:Lstr);
Var I:Integer;
Begin
For I:=1 to Length(S) Do SendChar(S[I]);
End; (* End Send String *)
procedure UpDateStory(Nums:Integer; Sent,Upgraded:Boolean);
Var T:Text;
Begin
appendfile(configset.forumdi+'Notices.BBS',t);
WriteLn(T,^M^S'────────────────────────────────────────────────────────────────────────');
WriteLn(T,^R' On '+DateStr(Now)+' at '+TimeStr(Now)+' The Following Happened');
if not Sent then WriteLn(T,^R'('+Strr(Nums)+') Messages were sent to '+NodeRec.Name)
else WriteLn(T,^R'('+Strr(Nums)+') Messages were received from '+NodeRec.Name);
If Upgraded then WriteLn(T,^R'An Upgrade was received with this packet!');
WriteLn(T,^S'────────────────────────────────────────────────────────────────────────'^M);
TextClose(T);
End; (* End UpdateStory *)
Procedure GetItAll;
Var C:Char;
Begin
While NumChars>0 do
write(usr,getchar);
End; (* End GetItAll *)
Procedure SetUpForNetMail;
Begin
ClrScr;
WriteLn(Usr,'ViSiON Netmail version 1.01 (c) 1991 Ruthless Enterprises.');
If Not Exist(ConfigSet.ForumDi+'NodeList.BBS') then
Begin
WriteLn(Usr,'We WOULD send NetMail, BUT there seems to be no one to net with. MAKE');
WriteLn(Usr,'your NODELIST.BBS file BEFORE trying to attempt netmail!');
EnsureClosed;
Halt(0);
End; (* End If then Begin *)
WriteLn(Usr,'First we must disable Auto-Answer!');
SendString('ATZ'+#13);
Delay(1500);
GetItAll;
SendString('ATS0=0'+#13);
Delay(500);
GetItAll;
WriteLn(Usr,'Now we will go ahead and set the Extended Registers to recognize everything.');
SendString('ATX6'+#13);
Delay(500);
GetItAll;
WriteLn(Usr,'Now we will open up the Node List file.');
Assign(Fnode,Configset.ForumDi+'NodeList.BBS');
Reset(Fnode);
CurrentNodeNumber:=0;
WriteLn(Usr,'There. All done.');
End; (* End SetUpForNetMail *)
Procedure DialNodes;
Var Packaged:Boolean;
Function Connected:Boolean;
Var C:Char;
S:String;
Begin
Delay(9000);
S:='';
While NumChars>0 Do
Begin
S:=S+getchar;
If C=#13 then S:='';
If Pos('[Hit Return]',S)>0 Then
Begin
WriteLn(Usr,'We MUST hit return!');
SendString(#13+#13+#13+#13);
S:='';
End; (* End If then *)
End; (* End Repeat Loop *)
If Carrier then Connected:=True;
End; (* End Connected *)
Procedure DialNode;
Procedure PrepNetMail;
Var Ct,Loper:Integer;
NetPost:NetPostRec;
FNP:File of NetPostRec;
Bul:BulRec;
M:Message;
Bfile:File of BulRec;
BaseName:SStr;
CurBase:Byte;
Procedure Package;
Begin
ClrScr;
WriteLn(Usr,'Making NetMail Package as per request.');
CurBase:=0;
NumMsgs:=0;
Assign(Fnp,Configset.NetDir+'NetMail.Pkg');
ReWrite(Fnp);
Loper:=0;
While Loper<255 Do
Begin
Inc(Loper);
If NodeRec.BaseSelection[Loper] Then Begin
BaseName:=FindBaseName(Loper);
If BaseName<>'' then Begin
Assign(Bfile,ConfigSet.BoardDi+BaseName+'.BUL');
Reset(Bfile);
Ct:=0;
While Not Eof(Bfile) Do
Begin
Seek(Bfile,Ct);
Read(Bfile,Bul);
If Bul.When>NodeRec.LastDate Then
Begin
Inc(NumMsgs);
NetPost.NetIdNum:=Loper;
NetPost.BulletinRec:=Bul;
ReloadText(Bul.Line,M);
NetPost.MessageRec:=M;
Seek(Fnp,FileSize(Fnp));
Write(Fnp,NetPost);
End; (* If Bul.When>NodeRec.LastDate *)
Inc(Ct);
End; (* End While Not Eof *)
Close(Bfile);
End; (* End if basename<>'' *)
End; (* End if basethingie *)
End; (* End Loper *)
Close(Fnp);
End; (* End Package *)
Procedure ZipPackage;
Var F:File;
Begin
Exec('PKZIP.EXE',Configset.NetDir+'Net.Zip '+ConfigSet.NetDir+'NetMail.Pkg');
Assign(F,ConfigSet.NetDir+'NetMail.Pkg');
Erase(F);
Close(F);
End; (* End ZipPackage *)
Begin
Package;
If NumMsgs>0 Then Begin
ZipPackage;
Packaged:=True;
End;
End; (* End SendOutGoing *)
Function Call(X:Lstr):Boolean;
Var Pre,Suf:Lstr;
Jo:Integer;
Finished:Boolean;
Function Busy:Boolean;
Var K:String;
C:Char;
Begin
K:='';
While NumChars>0 do k:=k+getchar;
Busy:=False;
If Pos('BUSY',K)>0 then Busy:=True;
If Pos('NO CARRIER',K)>0 Then Busy:=True;
If Pos('NO DIAL',K)>0 Then Busy:=True;
End; (* End Busy *)
Begin
ClrScr;
WriteLn(Usr,'Dialing Number...');
If X='' then Exit;
dontanswer;
Delay(1500);
Pre:='';
Suf:='';
If Length(X)>7 then
Begin
Pre:=ConfigSet.CoPre;
Suf:=ConfigSet.CoSuf;
End;
If KeyPressed then Chrr:=ReadKey;
DoAnswer;
Delay(1200);
SendString(' ');
Delay(1600);
GetItAll;
SendString('ATDT'+Pre+X+Suf+#13);
Finished:=False;
delay(1500);
GetItAll;
Jo:=0;
Repeat
Inc(Jo);
Delay(10);
If Busy then Finished:=True;
If Finished then WriteLn(Usr,'Line was busy!'^M);
If KeyPressed then Finished:=True;
If KeyPressed then WriteLn(Usr,'User Abort!');
If Carrier then Finished:=True;
Until Finished or (Jo>15000);
SendString(^M);
Call:=Carrier;
End; (* End Call *)
Begin
PrepNetMail;
Window(1,1,80,25);
ClrScr;
TextColor(15);
WriteLn(Usr,'ViSiON NetMail Dialing '+NodeRec.Name+' @'+NodeRec.Phone);
TextColor(11);
WriteLn(Usr,'──────────────────────────────────────────────────────────────────────────');
TextColor(7);
Window(1,3,80,25);
Repeat
delay(2500);
Until Call(NodeRec.Phone) or
(Not WithinTime(ConfigSet.NetStc,Configset.NetEnc));
End; (* End DialNode *)
Function SuccessfulNetMail:Boolean;
Var T:Text;
Received:Boolean;
F:File;
I:Integer;
Procedure SendViaDSZ;
Begin
Delay(3000);
Exec('Dsz.Com',' port '+Strr(Configset.UseCo)+' ha slow speed '+strlong(baudrate)+' sz -m '+Configset.NetDir+'Net.Zip');
Assign(F,ConfigSet.NetDir+'Net.Zip');
Erase(F);
updatestory(NumMsgs,False,False);
NumMsgs:=0;
End; (* End SendViaDSZ *)
Function ExecDsz:Boolean;
var ken:char;
Begin
If Exist(ConfigSet.WorkDir+'Net.Zip') then
Begin
Assign(F,ConfigSet.WorkDir+'Net.Zip');
Erase(F);
End; (* End If Then *)
Delay(500);
GetItAll;
Repeat
Until (NumChars>0) or (Not Carrier);
Exec('Dsz.Com',' port '+Strr(ConfigSet.UseCo)+' ha slow speed '+strlong(baudrate)+' rz -m '+ConfigSet.WorkDir+'Net.Zip');
ExecDsz:=True;
End;
Procedure ProcessIncomming;
Var Fnp:File of NetPostRec;
NetPost:NetPostRec;
M:Message;
B:BulRec;
Bfile:File of BulRec;
Upgrade,oktosend:Boolean;
Procedure UnZipNet;
Var F:File;
Begin
SwapVectors;
Exec(GetEnv('Comspec'),'/C Pkunzip '+ConfigSet.WorkDir+'Net.Zip -o '+ConfigSet.WorkDir);
Assign(F,Configset.WorkDir+'Net.Zip');
Erase(F);
Close(F);
End; (* End UnZipNet *)
Procedure PostMsgs;
Var F:File;
TId:Word;
Current:Byte;
BaseName:Sstr;
Begin
ClrScr;
Upgrade:=False;
WriteLn(Usr,'Posting NetMail Messages.');
If Exist(ConfigSet.WorkDir+'Upgrade.Zip') then
Begin
Upgrade:=true;
Exec(GetEnv('ComSpec'),'/C Copy '+ConfigSet.WorkDir+'Upgrade.Zip '+
ConfigSet.NetType1Path+'Upgrade.Zip > NUL');
Assign(F,ConfigSet.WorkDir+'Upgrade.Zip');
Erase(F);
Close(F);
End;
If Exist(ConfigSet.WorkDir+'NetMail.Pkg') Then
Begin
Assign(Fnp,Configset.WorkDir+'NetMail.Pkg');
Reset(Fnp);
NumMsgs:=0;
Current:=0;
While Not Eof(Fnp) Do
Begin
Read(Fnp,NetPost);
If Current<>NetPost.NetIdNum Then Begin
BaseName:=FindBaseName(NetPost.NetIdNum);
Close(Bfile);
If BaseName<>'' Then Begin
Assign(Bfile,ConfigSet.BoardDi+BaseName+'.Bul');
Reset(Bfile);
End; (* End if basename<>'' *)
End; (* End if current<>netpost.netidnum *)
If NetPost.BulletinRec.Where=ConfigSet.Origin1 Then Else
Begin
Seek(Bfile,FileSize(BFile)-1);
Read(Bfile,B);
If B.Id=65535 then NetPost.BulletinRec.Id:=1 Else
NetPost.BulletinRec.Id:=B.Id+1;
B:=NetPost.BulletinRec;
M:=NetPost.MessageRec;
B.Line:=MakeText(M);
B.When:=Now;
Seek(Bfile,FileSize(Bfile));
Write(Bfile,B);
Inc(NumMsgs);
End; (* End if origin is here *)
End; (* End While Not Eof Do Begin *)
Close(Fnp);
Assign(F,ConfigSet.WorkDir+'NetMail.Pkg');
Erase(F);
NewPosts:=NewPosts+NumMsgs;
Gnup:=Gnup+NumMsgs;
WriteStatus;
End; (* End If Exist Msgs *)
End; (* End PostMsgs *)
Begin (* Main ProcessIncomming *)
UnZipNet;
PostMsgs;
UpDateStory(NumMsgs,True,Upgrade);
End; (* End ProcessIncomming *)
Procedure UpDateNode;
Begin
NodeRec.LastDate:=Now;
Seek(Fnode,CurrentNodeNumber);
Write(Fnode,NodeRec);
End; (* End UpDateNode *)
Begin
If Not Carrier And Not WithinTime(ConfigSet.NetStc,ConfigSet.NetEnc) then
Begin
SuccessfulNetMail:=True;
Exit;
End;
If Not Connected Then
Begin
SuccessfulNetMail:=False;
WriteLn(Usr,'NetMail failed.. Why???');
HangUp;
Delay(1600);
Exit;
End; (* End Delay *)
SuccessfulNetMail:=False;
SendString(ConfigSet.NetPas+#13);
Delay(500);
GetItAll;
SendString(NodeRec.Node+#13);
Delay(500);
GetItAll;
SendString(NodeRec.Pass+#13);
Delay(500);
GetItAll;
Delay(1500);
If Not Carrier then Begin
Appendfile(ConfigSet.ForumDi+'Notices.BBS',t);
WriteLn(T,'On '+DateStr(Now)+' at '+TimeStr(Now)+' we had the wrong password');
WriteLn(T,'when we tried to send netmail to '+NodeRec.Name);
TextClose(T);
SuccessfulNetMail:=True;
End; (* End if not carrier *)
If ConfigSet.NetType1 then SendString('U'+#13);
oktosend:=False;
For I:=1 to 255 Do
Begin
If NodeRec.BaseSelection[I] Then SendString(Strr(I)+#13);
If NodeRec.BaseSelection[I] then GetItAll;
oktosend:=False;
End;
SendString('0'+#13);
Delay(500);
GetItAll;
oktosend:=true;
If Packaged then
Begin
SendString('Y'+#13);
Delay(500);
GetItAll;
SendString('Y'+#13); (* This is the "Yes to receive" *)
If oktosend then SendViaDSZ;
End Else (* End if packaged *)
Begin
SendString('N'+#13);
Delay(500);
GetItAll;
SendString('Y'+#13); (* yes to receive *)
end;
Delay(1500);
If Not Carrier then Begin
SuccessfulNetMail:=False;
Exit;
End; (* If Not Carrier *)
Received:=ExecDsz;
HangUp;
If Received then ProcessIncomming;
UpDateNode;
SuccessfulNetMail:=True;
End; (* End SuccessfulNetMail *)
Begin
While Not Eof(Fnode) Do
Begin
Seek(Fnode,CurrentNodeNumber);
Read(Fnode,NodeRec);
Repeat
DialNode;
Until SuccessfulNetMail; (* End Loop *)
Inc(CurrentNodeNumber);
End; (* End While Not EofFnode *)
End; (* End DialNodes *)
Procedure ExitNetMail;
Begin
ClrScr;
WriteLn(Usr,'Now we''re done.. Setting back on Auto Answer.');
DoAnswer;
SendString('ATZ'+#13);
Delay(2500);
GetItAll;
SendString('ATS0=1'+#13);
Delay(700);
GetItAll;
End;
Begin
SetUpForNetMail;
DialNodes;
ExitNetMail;
EnsureClosed;
Halt(0);
End; (* End Do_Net_Mail *)
(* This is when it is recieved at the MATRIX *)
procedure get_incomming;
var i,j,k,l,NumBase,NodeNumber:integer;
done,sending,upgrade,email,bulletins:boolean;
f:file;
t:text;
ID,Pass:String;
Bases:Array[1..255] of Byte;
NodeRec:NodeNetRec;
NodeFile:File of NodeNetRec;
Function ExecDsz:boolean;
var tries:integer;
ken:boolean;
f:file;
begin
ken:=false;
assign(f,configset.workdir+'Net.Zip');
if exist(configset.workdir+'Net.Zip') then erase(f);
close(f);
execdsz:=false;
tries:=0;
ClrScr;
WriteLn(Usr,'Receiving NetMail.');
exec('DSZ.COM',' port '+strr(configset.useco)+' speed '+strlong(baudrate)+' ha slow rz '+configset.workdir);
if dosexitcode=0 then ken:=true;
execdsz:=ken;
end; (* End ExecDsz *)
Function FindBaseName(BaseId:Byte):SStr;
Var Board:BoardRec;
Fbd:File of BoardRec;
Sek:Integer;
Begin (* Echo should equal baseId *)
Assign(Fbd,ConfigSet.BoardDi+'BoardDir');
Reset(Fbd);
Sek:=0;
FindBaseName:='';
Repeat
Seek(Fbd,Sek);
Read(Fbd,Board);
Inc(Sek);
If Board.Echo=BaseId then FindBaseName:=Board.ShortName;
Until (Board.Echo=BaseId) or Eof(Fbd);
Close(Fbd);
End; (* End FindBaseName *)
Procedure SendOutGoing; (* This sends the outgoing netmail. *)
Var Ct,Loper,NumMsgs:Integer;
NetPost:NetPostRec;
FNP:File of NetPostRec;
Bul:BulRec;
M:Message;
Bfile:File of BulRec;
BaseName:SStr;
CurBase:Byte;
Procedure Package;
Begin
ClrScr;
WriteLn(Usr,'Making NetMail Package as per request.');
CurBase:=0;
NumMsgs:=0;
Assign(Fnp,Configset.NetDir+'NetMail.Pkg');
ReWrite(Fnp);
Loper:=0;
While Loper<NumBase Do
Begin
Inc(Loper);
BaseName:=FindBaseName(Bases[Loper]);
If BaseName<>'' then Begin
Assign(Bfile,ConfigSet.BoardDi+BaseName+'.BUL');
Reset(Bfile);
Ct:=0;
While Not Eof(Bfile) Do
Begin
Seek(Bfile,Ct);
Read(Bfile,Bul);
If Bul.When>NodeRec.LastDate Then
Begin
Inc(NumMsgs);
NetPost.NetIdNum:=Bases[Loper];
NetPost.BulletinRec:=Bul;
ReloadText(Bul.Line,M);
NetPost.MessageRec:=M;
Seek(Fnp,FileSize(Fnp));
Write(Fnp,NetPost);
End; (* If Bul.When>NodeRec.LastDate *)
Inc(Ct);
End; (* End While Not Eof *)
Close(Bfile);
End; (* End if basename<>'' *)
End; (* End Loper *)
Close(Fnp);
End; (* End Package *)
Procedure ZipPackage;
Var F:File;
Begin
Exec('PKZIP.EXE',Configset.NetDir+'Net.Zip '+ConfigSet.NetDir+'NetMail.Pkg');
Assign(F,ConfigSet.NetDir+'NetMail.Pkg');
Erase(F);
Close(F);
If Upgrade then if Exist(ConfigSet.NetType1Path+'UPGRADE.ZIP') then
Exec('PKZIP.EXE',configset.netdir+'Net.Zip '+ConfigSet.NetType1Path+'UPGRADE.ZIP')
ELSE UPGRADE:=False;
End; (* End ZipPackage *)
Procedure SendDsz;
Var F:File;
Begin
ClrScr;
WriteLn(Usr,'Sending NetMail Packet.');
Exec('DSZ.COM',' port '+Strr(ConfigSet.UseCo)+' speed '+strlong(Baudrate)+' ha slow sz -m '+configset.NetDir+'Net.Zip');
Assign(F,ConfigSet.NetDir+'Net.Zip');
Erase(F);
End; (* End SendDsz *)
Procedure UpdateStory;
Begin
appendfile(configset.forumdi+'NOTICES.BBS',t);
WriteLn(T,^S'────────────────────────────────────────────────────────────────────────────');
WriteLn(T,^M^R' On '+DateStr(Now)+' At '+TimeStr(Now)+' The Following Happened.');
WriteLn(T,^M^R'('+Strr(NumMsgs)+') Were sent to '+NodeRec.Name+'/'+NodeRec.Node);
If Upgrade then
WriteLn(T,^R'A ViSiON Upgrade was sent in this packet.');
WriteLn(T,^M);
WriteLn(T,^S'────────────────────────────────────────────────────────────────────────────');
WriteLn(T,^M);
TextClose(T);
End; (* End UpdateStory *)
Begin
Package;
ZipPackage;
SendDsz;
NodeRec.LastDate:=Now;
UpDateStory;
End; (* End SendOutGoing *)
Procedure UpdateNode;
Begin
Assign(Nodefile,Configset.ForumDi+'NodeList.BBS');
Reset(NodeFile);
Seek(NodeFile,NodeNumber);
Write(NodeFile,NodeRec);
Close(Nodefile);
End; (* End UpdateNode *)
Procedure ProcessIncomming;
Var Fnp:File of NetPostRec;
NetPost:NetPostRec;
M:Message;
B:BulRec;
NumMsgs:Integer;
Bfile:File of BulRec;
Procedure UpDateStory;
Begin
appendfile(ConfigSet.ForumDi+'Notices.BBS',t);
WriteLn(T,^S'───────────────────────────────────────────────────────────────────────────');
WriteLn(T,^M^R' On '+DateStr(Now)+' at '+TimeStr(Now)+' The Following Happened.');
WriteLn(T,^M'('+Strr(NumMsgs)+') Messages Were Received from '+NodeRec.Name+'/'+NodeRec.Node+^M);
WriteLn(T,^S'───────────────────────────────────────────────────────────────────────────');
TextClose(T);
NewPosts:=NewPosts+NumMsgs;
Gnup:=Gnup+NumMsgs;
WriteStatus;
End; (* End UpDateStory *)
Procedure UnZipNet;
Var F:File;
Begin
SwapVectors;
Exec(GetEnv('Comspec'),'/C Pkunzip '+ConfigSet.WorkDir+'Net.Zip -o '+ConfigSet.WorkDir);
Assign(F,Configset.WorkDir+'Net.Zip');
Erase(F);
Close(F);
End; (* End UnZipNet *)
Procedure PostMsgs;
Var F:File;
TId:Word;
Current:Byte;
BaseName:Sstr;
Begin
ClrScr;
WriteLn(Usr,'Posting NetMail Messages.');
If Exist(ConfigSet.WorkDir+'NetMail.Pkg') Then
Begin
Assign(Fnp,Configset.WorkDir+'NetMail.Pkg');
Reset(Fnp);
NumMsgs:=0;
Current:=0;
While Not Eof(Fnp) Do
Begin
Read(Fnp,NetPost);
If Current<>NetPost.NetIdNum Then Begin
BaseName:=FindBaseName(NetPost.NetIdNum);
Close(Bfile);
If BaseName<>'' Then Begin
Assign(Bfile,ConfigSet.BoardDi+BaseName+'.Bul');
Reset(Bfile);
End; (* End if basename<>'' *)
End; (* End if current<>netpost.netidnum *)
If NetPost.BulletinRec.Where=ConfigSet.Origin1 Then Else
Begin
Seek(Bfile,FileSize(BFile)-1);
Read(Bfile,B);
If B.Id=65535 then NetPost.BulletinRec.Id:=1 Else
NetPost.BulletinRec.Id:=B.Id+1;
B:=NetPost.BulletinRec;
M:=NetPost.MessageRec;
B.Line:=MakeText(M);
B.When:=Now;
Seek(Bfile,FileSize(Bfile));
Write(Bfile,B);
Inc(NumMsgs);
End; (* End if origin is here *)
End; (* End While Not Eof Do Begin *)
Close(Fnp);
Assign(F,ConfigSet.WorkDir+'NetMail.Pkg');
Erase(F);
End; (* End If Exist Msgs *)
End; (* End PostMsgs *)
Begin (* Main ProcessIncomming *)
UnZipNet;
PostMsgs;
UpDateStory;
NodeRec.LastDate:=Now;
End; (* End ProcessIncomming *)
Var Rec:Boolean;
Begin
WriteStr('ID:');
Id:=Input;
WriteStr('PASS:');
Pass:=Input;
FillChar(Bases,SizeOf(Bases),0);
NumBase:=0;
upgrade:=False;
Email:=False;
Bulletins:=False; (* Note EMAIL and Bulletins are NOT added yet *)
Done:=False;
If Exist(ConfigSet.ForumDi+'NodeList.BBS') then Begin
Assign(NodeFile,ConfigSet.ForumDi+'NodeList.BBS');
Reset(NodeFile);
NodeNumber:=-1;
Done:=False;
While Not Eof(NodeFile) and not done Do
Begin
Read(NodeFile,NodeRec);
Inc(NodeNumber);
If (Match(Id,NodeRec.Node)) and (Match(Pass,NodeRec.Pass)) then Done:=True;
End;
Close(NodeFile);
End; (* End if exist loop *)
If not Done then Begin
WriteLn('Something must be wrong!');
Delay(1500);
HangUp;
EnsureClosed;
Halt(0);
End;
I:=1;
Repeat
WriteStr('BASE:');
If Input='U' then Begin
I:=-1;
Upgrade:=True;
End
ELSE Begin
I:=Valu(Input);
If I>0 then Begin
Inc(NumBase);
Bases[NumBase]:=I;
End; (* End if then *)
End; (* End if else begin *)
Until (I=0) or HungUpOn;
WriteStr('SEND:');
Sending:=Yes;
WriteStr('RECEIVE:');
Rec:=Yes;
If Sending then Sending:=ExecDsz;
If rec Then SendOutGoing;
Delay(1500);
HangUp;
DontAnswer;
If Sending Then ProcessIncomming;
UpDateNode;
EnsureClosed;
Halt(0);
End; (* End Get_Incomming *)